package com.shujia.core

import org.apache.spark.{SparkConf, SparkContext}

object Code13MapValues extends App {
  val sc = new SparkContext(new SparkConf().setMaster("local").setAppName("Mysql2Text"))

  /**
   * MapValues:
   *    作用在KeyValue形式的RDD上，直接对Value数据进行处理，通常是跟在GroupBy之后使用
   *
   */


  sc
    .textFile("scala_code/data/students.txt")

    .map{
      case oneLine => {
        val splitRes: Array[String] = oneLine.split(",")
        (splitRes(0),splitRes(1),splitRes(2),splitRes(3),splitRes(4))
      }
    }
    .groupBy {
          // 对多个字段进行分组处理
      case (id,name,age,gender,clazz) => (clazz,gender)
    }
    .mapValues {
      case iterator => {
        // 计算每个迭代器中的数量 就是班级年龄的人数
        iterator.size
      }
    }
    .foreach(println)
//    .mapValues{
//      case (name,age,gender,clazz) => {
//
//      }
//    }


}
